package org.ucas.faker.web.dao.graph;


import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import org.ucas.faker.web.entity.patents.Patent;
import org.ucas.faker.web.utils.graph.TechBranchEffect;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Repository
@Mapper
public interface GraphPatentMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Patent record);

    int insertSelective(Patent record);

    Patent selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(Patent record);

    int updateByPrimaryKey(Patent record);

	List<HashMap> select_1001();
	
    List<HashMap> select_1002();
    
    List<HashMap> select_1004();
    
    List<HashMap> select_1005();
    
    List<HashMap> select_2001(@Param("flowId") long flowId);
    
    List<HashMap> select_30011();
    
    List<HashMap> select_4001();
    
    List<HashMap> select_60011();
    List<HashMap> select_60012(Map paramMap);
	
    List<HashMap> select_5001(@Param("flowId") long flowId);
    
    List<HashMap> select_5002(@Param("flowId") long flowId);
    
    List<HashMap> select_5004();
    
    List<HashMap> select_5005();
    
    List<HashMap> select_5006();
    
    List<HashMap> select_50071();
    List<HashMap> select_50072(Map paramMap);
    
    List<HashMap> select_5008();
    
    //目前数据库字段没有PTV，此为正式方法
    List<HashMap> select_5009();
    //目前数据库字段没有PTV，待补充，此为示查询方法
    List<HashMap> select_5009_noptv();
    
   //目前数据库字段没有PTV，此为正式方法
    List<HashMap> select_5010();
    //目前数据库字段没有PTV，待补充，此为示查询方法
    List<HashMap> select_5010_noptv();
    
  //目前数据库字段没有PTV，此为正式方法
    List<HashMap> select_5011();
    //目前数据库字段没有PTV，待补充，此为示查询方法
    List<HashMap> select_5011_noptv();
    
  //目前数据库字段没有PTV，此为正式方法
    List<HashMap> select_5012();
    //目前数据库字段没有PTV，待补充，此为示查询方法
    List<HashMap> select_5012_noptv();
    
  //***非通用图***
    //@Select("select tech_branch,tech_effect from feature INNER JOIN (SELECT * FROM patent_meta WHERE patent_meta.flow_id = #{flowId} and patent_meta.selected=1) as meta ON feature.id = meta.id")
    @Select("select tech_branch,tech_effect from feature")
    List<TechBranchEffect> GetBranchAndEffect();

    List<HashMap> select_2006(@Param("flowId") long flowId);

    
}